package com.wgh.order.converter;

import com.wgh.order.entity.Order;
import com.wgh.order.entity.OrderItem;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 订单相关实体转换器
 */
@Mapper(componentModel = "spring")
public interface OrderConverter {

    OrderConverter INSTANCE = Mappers.getMapper(OrderConverter.class);

    /**
     * 将Order实体转换为OrderDTO
     */
    com.wgh.order.dto.OrderDTO orderToDto(Order order);

    /**
     * 将OrderDTO转换为Order实体
     */
    Order dtoToOrder(com.wgh.order.dto.OrderDTO orderDTO);

    /**
     * 将Order实体列表转换为OrderDTO列表
     */
    List<com.wgh.order.dto.OrderDTO> orderListToDtoList(List<Order> orders);

    /**
     * 将OrderDTO列表转换为Order实体列表
     */
    List<Order> dtoListToOrderList(List<com.wgh.order.dto.OrderDTO> orderDTOs);

    /**
     * 将OrderItem实体转换为OrderItemDTO
     */
    com.wgh.order.dto.OrderItemDTO orderItemToDto(OrderItem orderItem);

    /**
     * 将OrderItemDTO转换为OrderItem实体
     */
    OrderItem dtoToOrderItem(com.wgh.order.dto.OrderItemDTO orderItemDTO);

    /**
     * 将OrderItem实体列表转换为OrderItemDTO列表
     */
    List<com.wgh.order.dto.OrderItemDTO> orderItemListToDtoList(List<OrderItem> orderItems);

    /**
     * 将OrderItemDTO列表转换为OrderItem实体列表
     */
    List<OrderItem> dtoListToOrderItemList(List<com.wgh.order.dto.OrderItemDTO> orderItemDTOs);
}